1. Field of the Invention
This application relates to the field of digital multimedia and more particularly to the field of watermarking digital multimedia content.
2. Description of Related Art
Enforcing ownership rights in digital content may be difficult due to the relative ease with which the content can be reproduced and distributed. Secure communication provides one form of protection. Encryption may prevent outsiders from viewing a video sequence, but once the video stream has been decrypted, there is no protection against manipulation and redistribution of the stream. Further, where widespread distribution of multimedia content is desired, key-management for a typical public key encryption scheme becomes cumbersome. In addition, encryption may require error-free communications, which may not be available in all networks, particularly in a wireless network. Thus, there is an interest in supplemental security methods for multimedia content.
Another form of protection is provided by a message authentication code (xe2x80x9cMACxe2x80x9d) that is attached to digital content. For example, origination information may appear within a message field appended to digital content. However, this type of add-on authentication is easily identified and removed. A more resilient MAC system is provided by digital watermarking.
Digital watermarking is a technique for hiding an identification of origin in a digital media stream. A digital watermark is actually embedded in the media stream in a way that inhibits removal without destroying the underlying content. The watermark may also be folded into the original data in a manner that is imperceptible to the listener/viewer. When such watermarked digital content is distributed on-line, or recorded on a disk, the origination data travels with it, and allows the originator to demonstrate the source of the content. Digital watermarking also identifies tampering, since any manipulation of a sequence will result in an invalid watermark.
One technique for encoding multimedia content is detailed in the well-known Moving Picture Experts Group (xe2x80x9cMPEGxe2x80x9d) 2 standard. MPEG-2 is based upon a process of breaking an image frame up into fixed-size blocks, converting the blocks to luminance/chrominance data, transforming the blocks using a discrete cosine transform (xe2x80x9cDCTxe2x80x9d), and quantizing the transformed data. The resulting xe2x80x9cI framexe2x80x9d includes Y blocks for luminance (four in MPEG-2""s main level at main profile) and C blocks for chrominance (two in the main level at main profile) for each block of the frame. Each block contains a matrix of coefficients calculated from a Y or C block using the DCT. This step compresses data by removing so-called spatial redundancies, which may loosely be considered as similar-looking content in different areas of a block. Variable-length coding is then used to compress long runs of zeroes that are typical of high spatial-frequency coefficients. Still further compression is achieved by coding consecutive frames into xe2x80x9cP framesxe2x80x9d (predictive) and xe2x80x9cB framesxe2x80x9d (bi-directional), which only include information describing changes relative to neighboring chronological frames.
One known technique for watermarking such an MPEG-2 video stream is to use the DC coefficients of the Y blocks in each I frame of the MPEG-2 stream to effectively form a parity bit. According to this technique, the median DC coefficient of each sequential group of three Y blocks is forced to be always even or odd, depending on the watermark bit being encoded. This technique has a minimal impact on image quality and is relatively simple to implement. However, as a significant disadvantage thereof, this technique is not particularly robust. In many instances, only one out of every fifteen frames of an MPEG-2 video stream is an I frame, only two out of three blocks in an I frame is a Y block, and only one out of every three Y blocks is coded for watermarking. In those instances, very few bits of the overall bit stream are actually used for a watermark. Thus a relatively small amount of data corruption from bit errors in the data channel can effectively erase a watermark. At the same time, it is less likely that minor, intentional alterations will be detected.
There remains a need for a digital watermarking scheme that provides high watermark bit rates (relative to the overlying digital content) while remaining imperceptible to content users. A successful watermark would retain its signature in the presence of an error-prone data channel, and would correctly alert a watermark user to data tampering.
In accordance with the principles of the invention, there is provided digital watermarking that operates on a conventional digital video stream to etch, on hand, and read, on the other hand, digital watermarks in the stream that do not visibly interfere with the video content. The technique operates on digital data that has been transformed into the spatial-frequency domain, using inter-block differences between spatial-frequency coefficients to encode the bits of a digital watermark. According to the principles of the invention, it is possible to encode multiple watermark bits between two adjacent blocks, thus providing higher watermark data rates relative to underlying video content.
In one aspect, there is provided etching a digital watermark by: providing a watermark bit; providing a digital media stream comprising a first block and a second block, the first block comprising a first plurality of coefficients, and the second block comprising a second plurality of coefficients, each one of the second plurality of coefficients corresponding to one of the first plurality of coefficients; and setting a first difference to a predetermined value according to the watermark bit, the first difference being a difference between a first coefficient of the first block and a corresponding first coefficient of the second block.
This aspect may further include repeating the above for a plurality of consecutive watermark bits and a plurality of consecutive blocks, wherein the second block is used as a new first block, and a third consecutive block is used as a new second block. This aspect may also include setting the first difference to a predetermined value according to the watermark bit further includes forcing the first difference to a first level if the watermark bit is a one, and forcing the first difference to a second level if the watermark bit is a zero. In this aspect, the first level may be a binary even level and the second level may be a binary odd level. Setting the first difference to a binary even level may further include adding a quantization level to the corresponding first coefficient if the first difference is odd, and wherein setting the first difference to a binary odd level further includes adding a quantization level to the corresponding first coefficient if the first difference is even.
This aspect may further include: providing a second watermark bit; and setting a second difference to a predetermined value according to the second watermark bit, the second difference being a difference between a second coefficient of the first block and a corresponding second coefficient of the second block. The plurality of consecutive watermark bits may include an encrypted watermark. The digital media stream may include a Motion Picture Expert Group video stream, the first coefficient being a DC coefficient. The digital media stream may include a Motion Picture Expert Group video stream, the first coefficient being an AC coefficient.
In a different aspect, there is provided reading a digital watermark by: receiving a digital media stream comprising a first block and a second block, the first block comprising a first plurality of coefficients, and the second block comprising a second plurality of coefficients, each one of the second plurality of coefficients corresponding to one of the first plurality of coefficients; determining a first difference between a first coefficient of the first block and a corresponding first coefficient of the second block; and determining a watermark bit, the watermark bit having a predetermined value according to the first difference.
This aspect may further include repeating the above for a plurality of consecutive blocks, wherein the second block is used as a new first block, and a third consecutive block is used as a new second block, thereby determining a plurality of consecutive watermark bits. The predetermined value may be a one if the first difference has a first level, and the predetermined value may be a zero if the first difference has a second level. The first level may be a binary even level and the second level may be a binary odd level.
This aspect may further include determining a second difference between a second coefficient of the first block and a corresponding second coefficient of the second block, and determining a second watermark bit, the second watermark bit having a second predetermined value according to the second difference. The plurality of consecutive watermark bits may include an encrypted watermark. The digital media stream may include a Motion Picture Expert Group video stream and the first coefficient is a DC coefficient. The digital media stream may include a Motion Picture Expert Group video stream and the first coefficient is an AC coefficient.
In a different aspect, there is provided a system for etching a digital watermark that includes means for providing a watermark bit; means for providing a digital media stream comprising a first block and a second block, the first block comprising a first plurality of coefficients, and the second block comprising a second plurality of coefficients, each one of the second plurality of coefficients corresponding to one of the first plurality of coefficients; means for either setting a first difference to a first level if the watermark bit is a one, or setting the first difference to a second level if the watermark bit is a zero, the first difference being a difference between a first coefficient of the first block and a corresponding first coefficient of the second block; and means for providing a plurality of consecutive watermark bits and a plurality of consecutive blocks to the above means, wherein the second block is used as a new first block, and a third consecutive block is used as a new second block.
In this aspect, the first level may be a binary even level and the second level may be a binary odd level. This aspect may further include means for providing a second watermark bit; and means for either setting a second difference to be even if the watermark bit is a one, or setting the second difference to be odd if the watermark bit is a zero, the second difference being a difference between a second coefficient of the first block and a corresponding second coefficient of the second block. There may also be provided means for encrypting the plurality of consecutive watermark bits into an encrypted watermark. There may also be provided means for variable-length decoding the first plurality of coefficients and the second plurality of coefficients before applying the determining means and the setting means, and means for variable-length coding the first plurality of coefficients and the second plurality of coefficients after applying the determining means and the setting means.
In a different aspect, there may be provided a digital video encoder that includes a watermark source, the watermark source providing a plurality of watermark bits; a transform unit, the transform unit receiving a plurality of blocks of video data and performing a two-dimensional transform on each block to provide a transformed block, each transformed block including a plurality of coefficients; a quantizer, the quantizer receiving each transformed block and scaling each coefficient of each transformed block using a quantization index, thereby providing a plurality of quantized blocks; and a watermark unit, the watermark unit receiving one of the plurality of watermark bits from the watermark source, a first one of the plurality of quantized blocks, and a second one of the plurality of quantized blocks, the watermark unit encoding the one of the plurality of watermark bits by setting a difference to be even if the one of the plurality of watermark bits has a first value and setting the difference to be odd if the one of the plurality of watermark bits has a second value, the difference being a difference between a first coefficient of the first one of the plurality of quantized blocks and a corresponding first coefficient of the second one of the plurality of quantized blocks.
In this aspect, the first coefficient and the corresponding first coefficient may be DC coefficients. The first coefficient and the corresponding first coefficient may be AC coefficients. Setting the difference to be even may include adding a quantization level to the corresponding first coefficient if the difference is odd, and setting the difference to be odd may include adding a quantization level to the corresponding first coefficient if the difference is even. The plurality of quantized blocks may include a Motion Picture Expert Group video stream.
In a different aspect, there is provided a digital watermark embodied in a digital video stream carrier signal, the digital watermark comprising a plurality of watermark bits, each watermark bit having a value encoded between consecutive blocks of the digital video stream, the value being a first value when a difference between a pair of consecutive corresponding coefficients is even, and the value being a second value when the difference between the pair of consecutive corresponding coefficients is odd.
In this aspect, the first value may be one and the second value may be zero. The first value may be zero and the second value may be one. The pair of consecutive corresponding coefficients may each be DC coefficients. The pair of consecutive corresponding coefficients may each be AC coefficients.
In a different aspect, there is provided a computer program product for etching a digital watermark, embodied in machine executable code for performing the following steps: providing a watermark bit; providing a digital media stream comprising a first block and a second block, the first block comprising a first plurality of coefficients, and the second block comprising a second plurality of coefficients, each one of the second plurality of coefficients corresponding to one of the first plurality of coefficients; and setting a first difference to a predetermined value according to the watermark bit, the first difference being a difference between a first coefficient of the first block and a corresponding first coefficient of the second block.
In this aspect, there may be further provided machine executable code for repeating the above for a plurality of consecutive watermark bits and a plurality of consecutive blocks, wherein the second block is used as a new first block, and a third consecutive block is used as a new second block. Setting the first difference to a predetermined value according to the watermark bit may further include setting the first difference to a first level if the watermark bit is a one, and setting the first difference to a second level if the watermark bit is a zero. The first level may be a binary even level and the second level may be a binary odd level. Setting the first difference to a binary even level may further include adding a quantization level to the corresponding first coefficient if the first difference is odd, and setting the first difference to a binary odd level may further include adding a quantization level to the corresponding first coefficient if the first difference is even. The computer program product may further comprise machine executable code for providing a second watermark bit; and setting a second difference to a predetermined value according to the second watermark bit, the second difference being a difference between a second coefficient of the first block and a corresponding second coefficient of the second block. The plurality of consecutive watermark bits may include an encrypted watermark.
The digital media stream may includes a Motion Picture Expert Group video stream, the first coefficient being a DC coefficient. The digital media stream may include a Motion Picture Expert Group video stream, the first coefficient being an AC coefficient.